CREATE TABLE [dbo].[tb_LimitesPresupuestarios]
(
[IdLimitePresupuestario] [int] NOT NULL IDENTITY(1, 1),
[Descripcion] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Ejercicio] [int] NOT NULL,
[UnidadDeMedida] [int] NOT NULL,
[Limite] [float] NOT NULL,
[PartidaGenerica] [int] NULL,
[Nivel] [int] NULL,
[Modalidad] [int] NULL,
[Organizacion] [int] NULL,
[Cargo] [int] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[updLimitePresupuestario] ON [dbo].[tb_LimitesPresupuestarios] 
FOR UPDATE 
AS
SET NOCOUNT ON
DECLARE @IdLimitePresupuestario INT
DECLARE @IdReestructura INT
SELECT @IdLimitePresupuestario = (SELECT IdLimitePresupuestario FROM inserted)


DECLARE X CURSOR FOR
	SELECT DISTINCT Reestructura FROM tb_SaldosDeReestructura SR
	INNER JOIN tb_Reestructuras R ON R.IdReestructura = SR.Reestructura
	WHERE Limite = @IdLimitePresupuestario AND R.Estado NOT IN(15, 16, 18)

OPEN X

FETCH NEXT FROM X INTO @IdReestructura

WHILE @@FETCH_STATUS = 0 BEGIN
	UPDATE tb_Reestructuras SET Estado = 12 WHERE IdReestructura = @IdReestructura
	FETCH NEXT FROM X INTO @IdReestructura
END

CLOSE X
DEALLOCATE X

GO
ALTER TABLE [dbo].[tb_LimitesPresupuestarios] ADD CONSTRAINT [PK_tb_LimitesPresupuestarios] PRIMARY KEY NONCLUSTERED  ([IdLimitePresupuestario]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tb_LimitesPresupuestarios] WITH NOCHECK ADD CONSTRAINT [FK_tb_LimitesPresupuestarios_tb_ModalidadesEnsenanza] FOREIGN KEY ([Modalidad]) REFERENCES [dbo].[tb_ModalidadesEnsenanza] ([idModalidad])
GO
ALTER TABLE [dbo].[tb_LimitesPresupuestarios] WITH NOCHECK ADD CONSTRAINT [FK_tb_LimitesPresupuestarios_tb_NivelesEnsenanza] FOREIGN KEY ([Nivel]) REFERENCES [dbo].[tb_NivelesEnsenanza] ([idNivelEnsenanza])
GO
ALTER TABLE [dbo].[tb_LimitesPresupuestarios] WITH NOCHECK ADD CONSTRAINT [FK_tb_LimitesPresupuestarios_tb_Organizaciones] FOREIGN KEY ([Organizacion]) REFERENCES [dbo].[tb_Organizaciones] ([idOrganizaciones])
GO
ALTER TABLE [dbo].[tb_LimitesPresupuestarios] WITH NOCHECK ADD CONSTRAINT [FK_tb_LimitesPresupuestarios_tb_PartidasPresupuestarias] FOREIGN KEY ([PartidaGenerica]) REFERENCES [dbo].[tb_PartidasPresupuestarias] ([idPartida])
GO
ALTER TABLE [dbo].[tb_LimitesPresupuestarios] ADD CONSTRAINT [FK_tb_LimitesPresupuestarios_tb_UnidadesDeMedidaDeLimitesPresupuestarios] FOREIGN KEY ([UnidadDeMedida]) REFERENCES [dbo].[tb_UnidadesDeMedidaDeLimitesPresupuestarios] ([IdUnidadDeMedida])
GO
